#ifndef PoseNode_H
#define PoseNode_H

#include <QObject>
#include <QVector3D>
#include <QQuickItem>
#include <QQuaternion>
#include <optional>

#include <QtQmlIntegration>

//姿态中的一个属性

struct PoseProperties{
    std::optional<QQuaternion> rotation;
    std::optional<QVector3D> position;
    std::optional<QVector3D> scale;
};

typedef QMap<QByteArray,PoseProperties> Pose;

class PoseNode:public QQuickItem
{
    Q_OBJECT
    QML_ELEMENT
public:
    PoseNode();
    ~PoseNode();

    virtual Pose getEntry() = 0;

protected:
    QString getObjectId(QObject* target);
};

#endif
